package nci60.data.protein.uniprot

/**
 * Gene name coding for the protein. <p />
 * This class contains gene symbols, which the UniProtKB curators consider to be the official gene name. <p />
 * Most of the differences between official symbols and synonyms are in spelling like “HLA-A” and “HLAA” or  “MLL”, “MLL1” and “MLL1A”.
 *
 * @autor <a href="mailto:Florian.J.Auer@googlemail.com">Florian J. Auer</a>
*/
class UniprotGene {

    /**
    * Official gene name/symbol in uniprot
    */
    String name

    
    /**
    * GRAILS <a href="http://grails.org/doc/latest/guide/GORM.html#gormAssociation" target="_blank">Associations in Gorm</a>
    * <p />
    * <style>.custom-table td{border-top:1pt solid grey;vertical-align:top;} .custom-table{border-collapse:collapse;width:100%;}</style>
    * <table class="custom-table">
    * <tr><td>
    *              protein
    * </td><td>        belongs to one specific Protein entry from Uniprot <p />
    *                  <b>See Also:</b> {@link nci60.data.protein.uniprot.Uniprot}
    * </td></tr>
    * </table>
    */
    static belongsTo = [protein:Uniprot]

    
    /**
     * GRAILS <a href="http://grails.org/doc/latest/guide/GORM.html#gormAssociation" target="_blank">Associations in Gorm</a>
     * <p />
     * <style>.custom-table td{border-top:1pt solid grey;vertical-align:top;} .custom-table{border-collapse:collapse;width:100%;}</style>
     * <table class="custom-table">
     * <tr><td>
     *              synonyms
     * </td><td>        synonyms for the official gene name <p />
     *                  <b>See Also:</b> {@link nci60.data.protein.uniprot.UniprotGeneSynonym} <p />
     * </td></tr>
     * </table>
     */
    static hasMany = [synonyms:UniprotGeneSynonym]

    /**
     * GRAILS <a href="http://grails.org/doc/latest/guide/single.html#constraints" target="_blank">Declaring Constraints</a>
     * <p />
     * Constraints in Grails are a way to declaratively specify validation rules for generating objects in GORM.
     */	
    static constraints = {
    }

    /**
     * GRAILS <a href="http://grails.org/doc/latest/guide/GORM.html#ormdsl" target="_blank">Custom ORM Mapping</a>
     * <p />
     * Grails domain classes can be mapped onto many legacy schemas with an Object Relational Mapping DSL (domain specific language). 
     */	
    static mapping = {
        version : false
    }
}
